import argparse

parser = argparse.ArgumentParser(
    description="Multi-Level Graph Matching Network for the Graph-Graph Classification tasks")


parser.add_argument('--dataDir', type=str, default='/home/chenyongwei/project/malSim/data/functionSim',
                    help='root directory for the data set')
parser.add_argument('--dataset', type=str, default="unknown",
                    help='provided by enterprise')
parser.add_argument('--graphSizeLimit', type=int, default=4994,
                    help='max node size for one graph ')  # 这个感觉是不是不能要了，哈哈
parser.add_argument('--nodeInitDim', type=int, default=8,
                    help='init feature dimension for one graph node')
parser.add_argument('--logPath', type=str,
                    default='/home/chenyongwei/project/malSim/logs/', help='path for log file')
parser.add_argument('--epochs', type=int, default=100,
                    help='number of training epochs')
# parser.add_argument("--batch_size", type=int, default=1, help="Number of graph pairs per batch.")
parser.add_argument("--batch_size", type=int, default=3,
                    help="Number of graph pairs per batch.")
parser.add_argument("--lr", type=float, default=3e-3, help="Learning rate.")
parser.add_argument('--adj_param', type=bool, default=False, help='False')
parser.add_argument('--randomSeed', type=int, default=555, help='')
parser.add_argument('--partitionGraph', type=str,
                    default="3-6-1", help="训练 验证 测试的比例")
parser.add_argument(
    '--only_test', type=lambda x: (str(x).lower() == 'true'), default='false')
parser.add_argument('--use_node_match', type=str,
                    default="True", help="是否使用跨图匹配")


parser.add_argument('--graph_size_min', type=int, default=3,
                    help='min node size for one graph ')
parser.add_argument('--graph_size_max', type=int, default=200,
                    help='max node size for one graph ')
parser.add_argument('--graph_init_dim', type=int, default=8,
                    help='init feature dimension for one graph')


parser.add_argument("--task", type=str, default='classification',
                    help="classification/regression")

parser.add_argument("--filters", type=str, default='100_100_100',
                    help="filters (neurons) for graph neural networks")
parser.add_argument("--conv", type=str, default='gcn',
                    help="one kind of graph neural networks")
parser.add_argument("--match", type=str, default='node-graph',
                    help="indicating the matching method")
parser.add_argument("--perspectives", type=int, default=100,
                    help='number of perspectives for node-graph matching')
parser.add_argument("--match_agg", type=str,
                    default='bilstm', help="aggregator")
parser.add_argument("--hidden_size", type=int, default=100,
                    help='hidden size for the graph-level embedding')


parser.add_argument("--global_flag", type=lambda x: (str(x).lower()
                    == 'true'), default='True', help="Whether use global info ")
parser.add_argument("--global_agg", type=str, default='fc_max_pool',
                    help="aggregation function for global level gcn ")

parser.add_argument("--dropout", type=float, default=0.1,
                    help="Dropout probability.")

# 之前设置为1了，导致好像根本没有使用GPU跑模型，哈哈哈
parser.add_argument('--gpu_index', type=str,
                    default='0', help="gpu index to use")
parser.add_argument('--log_path', type=str,
                    default='/home/chenyongwei/pycode/MGMN-main/CFGLogs/', help='path for log file')
parser.add_argument('--repeat_run', type=int, default=1,
                    help='indicated the index of repeat run')


parser.add_argument('--model_path', type=str,
                    default='/home/chenyongwei/pycode/MGMN-main/CFGLogs/ffmpeg_Min3_Max200_InitDims6_Task_classification/BestModels_bilstm_fc_max_pool_Repeat_1/ffmpeg_Min3_Max200.BestModel')


parser.add_argument('--dataConstruct', type=str, default='FSimDataset')

malSim_args = parser.parse_args()
